Data processors typically execute sequences of program steps in repetitive fashion commonly known as a do loop. Frequently, the execution of a do loop contains the execution of one or more separate internal do loops. A do loop which is located internal to another do loop is commonly referred to as a nested do loop. Do loops are typically implemented in software by decrementing an iteration count value and performing a jump to the start of the do loop if the iteration count value is not zero. If the iteration count value is zero, the jump to the start of the do loop does not occur and the instructions after the do loop are executed normally. Implementations of do loops by software require no support hardware but have a disadvantage of additional overhead cycles within the do loop execution. Nested do loops are no different in this respect. Since the inner loop steps are executed more frequently than the outer loop steps, reducing the overhead cycles associated with nested do loops is desirable. If the execution of a do loop and a nested do loop were performed by software, the inner loop overhead cycles would be very large. Do loop circuits have been implemented in hardware to reduce the overhead cycles associated with the loop control software. A hardware do loop must initially be set up by defining both the number of repetitions required and a sequence of steps to execute. The do loop hardware must decide at the end of each iteration of steps in a do loop whether to continue the loop or exit from the loop. Linde in U.S. Pat. No. 4,462,074 teaches the minimization of overhead associated with do loops by eliminating the inclusion in the do loop of steps for determining when a do loop has been completed. However, to effect nested do loops, the apparatus which executes do loops typically must itself be nested or duplicated as suggested by Linde. Such an implementation of nested do loops in duplicated hardware is very costly.